/**
 * jQuery 实现的 isArrayLike，数组和类数组都会返回 true。
 */

function isArrayLike(obj) {

  // obj 必须有 length属性
  var length = !!obj && "length" in obj && obj.length;
  var typeRes = type(obj);

  // 排除掉函数和 Window 对象
  if (typeRes === "function" || isWindow(obj)) {
      return false;
  }

  return typeRes === "array" || length === 0 ||
      typeof length === "number" && length > 0 && (length - 1) in obj;
}

//判断是否window对象
function isWindow( obj ) {
  return obj != null && obj === obj.window;
}
//判断是否dom元素
const isElement = function(obj) {
  return !!(obj && obj.nodeType === 1);
};

// 所以如果 isArrayLike 返回true，至少要满足三个条件之一：

// 是数组
// 长度为 0
// lengths 属性是大于 0 的数字类型，并且obj[length - 1]必须存在